home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 35 / PC Gamer IT CD 35 1-2.iso / Elink / NSCOMM / UTILITY.JS < prev    next >
Text File  |  1997-10-22  |  3KB  |  105 lines

  1. /* ==================================================================
  2. FILE:   Utility.js
  3. DESCR:  Misc. global APIs.
  4. NOTES:  
  5. ================================================================== */
  6.  
  7. /*
  8. DESCR:   Does non-case-sensitive comparison for equality of two URLS,
  9.          using only the portion beginning with the filename.
  10. PARAMS:  URL1_, URL2_  The URLs.
  11. RETURNS: True if equal, false otherwise.
  12. NOTES:   Not applicable to nethelp: URLs. Also requires that any fragment
  13.          specifier attached to the URLs does not contain "/".
  14. */
  15. function URLsSansPathsAreSame( URL1_, URL2_ )
  16. {
  17.    // Standardize case.
  18.    var URL1 = URL1_.toUpperCase()
  19.    var URL2 = URL2_.toUpperCase()
  20.  
  21.    // Remove any path.
  22.    URL1 = URL1.substring( URL1.lastIndexOf( "/" ) + 1 )
  23.    URL2 = URL2.substring( URL2.lastIndexOf( "/" ) + 1 )
  24.  
  25.    // Compare.
  26.    return ( URL1 == URL2 )
  27. }
  28.  
  29. /*
  30. DESCR:   Converts a URL to a simple filename (no path, no trailing
  31.          specifiers).
  32. PARAMS:  URL  The URL.
  33. RETURNS: The converted URL.
  34. NOTES:   Not applicable to nethelp: URLs. Also requires that any fragment
  35.          specifier attached to the URLs does not contain "/".
  36. */
  37. function makeSimpleFilename( URL )
  38. {
  39.    var filename
  40.  
  41.    // Standardize case.
  42.    filename = URL.toLowerCase()
  43.  
  44.    // Remove any path.
  45.    filename = filename.substring( filename.lastIndexOf( "/" ) + 1 )
  46.  
  47.    // Remove any specifiers.
  48.    if ( filename.indexOf( "#" ) > 0 ) {
  49.        filename = filename.substring( 0, filename.indexOf( "#" ) )
  50.    }
  51.    if ( filename.indexOf( "?" ) > 0 ) {
  52.       filename = filename.substring( 0, filename.indexOf( "?" ) )
  53.    }
  54.  
  55.    return filename
  56. }
  57.  
  58. /*
  59. DESCR:   Runtime error handler.
  60. PARAMS:  Standard JS event params.
  61. RETURNS: Boolean to optionally supress runtime error dialogs.
  62. NOTES:   If ERRS_TO_CONSOLE is ture, sends JS runtime errors to console for
  63.          any window that binds this handler. If ERR_DLGS is true, error
  64.          dialogs will not be supressed.
  65. */
  66. function errHandler( msg, URL, lineNum )
  67. {
  68.    if ( ERRS_TO_CONSOLE ) {
  69.  
  70.       // Report error to console.
  71.       java.lang.System.out.println( "" )
  72.       java.lang.System.out.println( "Error:" )
  73.       java.lang.System.out.println( msg )
  74.       java.lang.System.out.println( URL )
  75.       java.lang.System.out.println( lineNum )
  76.       java.lang.System.out.println( "" )
  77.    }
  78.  
  79.    // Allow or supress runtime error dialogs.
  80.    return ( ERR_DLGS ? false : true )
  81. }
  82.  
  83. /*
  84. DESCR:   Assertion routine.
  85. PARAMS:  bAssertion  Boolean expression.
  86.          msg         Fail message.
  87. RETURNS: 
  88. NOTES:   Must define ASSERT = true in any module using this routine.
  89. */
  90. function assert( bAssertion, msg )
  91. {
  92.    if ( ASSERT && !bAssertion ) alert( "ASSERTION FAILED: " + msg )
  93. }
  94.  
  95. /*
  96. DESCR:   Determines if a variable has been defined.
  97. PARAMS:  identifier  The identifier to test.
  98. RETURNS: true if the identifier is defined; false otherwise.
  99. NOTES:   
  100. */
  101. function defined( identifier )
  102. {
  103.    return ( typeof identifier == "undefined" ? false : true )
  104. }
  105.